1. Field of the Invention
This invention relates to computer architecture in general, and more particularly, to digital processor architecture with expandable functionality for implementation on an integrated circuit.
2. Description of the Prior Art
Single chip digital processors, such as microcontrollers, microprocessors, or digital signal processors, are ubiquitous digital computers used in virtually every application where intelligent control, information processing, or real-time signal processing is important. The tasks a digital processor can efficiently fulfill are directly related to the internal organization, or architecture, of the processor. The more generalized the task(s), the more general the architecture. For example, the architecture of microprocessors, such as those used in personal computers, is more geared toward general information handling, compared to a microcontroller for a milling machine. Digital signal processors, or DSPs, are specialized digital computers. Unlike microprocessors, DSPs are adapted for efficient, often repetitive, processing of data. For example, a DSP may be used for filtering, detecting, and generating digitized analog signals in a modem. DSPs may also be used for processing signaling information from individual telephone lines and trunks in an electronic switching system. In either case, the task assigned to the DSP is specialized and repetitive--the faster the DSP can perform the assigned task, the greater the signal bandwidth that can be processed or the more telephone line signaling information that can be processed by one processor.
The architecture of a typical microprocessor has general purpose registers and arithmetic circuits arranged to process widely different tasks, such as text editing, spreadsheets, etc. As a consequence, the execution of those tasks are done not as quickly, or as efficiently, as a processor tailored for optimal performance of a particular task. A DSP, on the other hand, has specialized registers and arithmetic circuits for efficient processing of signals. For example, multiply-and-accumulate instructions are very common operations in signal processing algorithms and are usually implemented only in DSPs, not on microprocessors.
In certain applications, there is no commercially available microprocessor, microcontroller or DSP which can efficiently carry out a particular task in an efficient manner. An obvious solution is to design a new digital processor, or more likely a redesign of an old processor to add new functionality, which can efficiently carry out the desired task. However, this approach is expensive and time consuming. Further, adding new functionality to an existing processor may negatively impact the overall efficiency of the processor. For example, the addition of a new function to an existing microprocessor or DSP (i.e., new instructions and/or additions to the processor's hardware) may slow down the execution speed of the processor's original instructions. Generally, this is not considered a good solution since the overall efficiency of the processor, with the added functionality, may be lowered.
Typical techniques to add new functionality to an existing processor include register, peripheral, or memory mapping of new hardware for the processor to access, or adding a co-processor. However, each of these techniques require the existing processor to access the additional hardware as a separate entity, slowing down the exchange of information between the processor and the added hardware. At best, the added hardware (typically a co-processor on a separate chip from the processor) "shadows" the existing processor's registers. The co-processor then takes over execution from the processor when specific instructions are addressed to it. Because a co-processor operates independently of the processor, the processor usually waits for the co-processor to finish execution, otherwise the processor and co-processor will lose synchronization and data may be lost. To move data between the processor and a co-processor, the data is usually read into temporary storage and reread under control the processor. This slows down the execution of the main processor, negating some of the advantage in speed gained by utilizing the co-processor.
It is, therefore, one aspect of the invention to provide a new digital processor architecture which allows for the addition of new functionality without significant impact on the existing, or core, functions of the processor.
It is another aspect of the invention to provide a digital processor architecture with expandable functionality which is readily integratable into a single chip using application specific integrated circuit technology.